The present invention relates generally to system performance management, and more particularly, to systems used to manage the system performance of resources performing tasks in response to task requests from tenants.
By way of background, computer systems are commonly put to many different tasks that use system resources to provide for different needs. Different people and/or companies and/or organizations, pay service fees for the use of a computer system. These people, companies, and organizations are referred to as “tenants” of the computer system. A given person, company, or organization acting in different roles or engaging in different activities might accordingly be identified as a different tenant, according to the role or activity. Service fees may be generated by the resources managed by the computer system, based upon the system performance of the tasks requested by the tenants.
Different tenants typically use the computer system concurrently. Even though the tenants tend to be concerned almost exclusively with the performance experienced for their particular use, the computer system needs to manage the resources for all the tenants and to provide an acceptable level of quality to each tenant. This quality level is quantified as a measure of the quality of service. It is important that the quality of service or performance provided by the computer system does not become too slow, or fail to meet a deadline for work completion, or otherwise inconvenience a valued tenant. The value, the generated revenue and/or the quality of service of the computer system, can sometimes be increased by improving the performance delivered to a valued tenant, while decreasing performance for another tenant.
In a multiple tenant computer system, tenant tasks may or may not interfere with one another. A tenant might create a load on the resources that prevents other tenants from obtaining their required performance. However, the tenants are often prioritized, allowing for the shifting of resource utilization between tenants in order to improve the quality of service, or the revenues generated by the system.
Often the prioritization reflects the value of the tenant, indicating that some tenants are more valuable than others at any point in time. The computer system determines the priorities. For example, if a tenant uses the computer system to backup hard drives before the start of business, the failure to achieve that result could lead the tenant to switch to another backup service. Therefore, that tenant may have priority over other tasks at certain times. Another example is a tenant paying a larger service fee than another tenant for an ongoing task.